
-- --------------------------------------------------
-- Entity Designer DDL Script for SQL Server 2005, 2008, and Azure
-- --------------------------------------------------
-- Date Created: 10/09/2010 16:21:12
-- Generated from EDMX file: H:\Projetos\MailMarketing\MailMarketing\Models\MailMarketing.edmx
-- --------------------------------------------------

SET QUOTED_IDENTIFIER OFF;
GO
USE [MailMarketing];
GO
IF SCHEMA_ID(N'dbo') IS NULL EXECUTE(N'CREATE SCHEMA [dbo]');
GO

-- --------------------------------------------------
-- Dropping existing FOREIGN KEY constraints
-- --------------------------------------------------

IF OBJECT_ID(N'[dbo].[FK_Cidades_Estados]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Cidade] DROP CONSTRAINT [FK_Cidades_Estados];
GO
IF OBJECT_ID(N'[dbo].[FK_Clientes_Cidades]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Cliente] DROP CONSTRAINT [FK_Clientes_Cidades];
GO
IF OBJECT_ID(N'[dbo].[FK_GrupoClienteCliente]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Cliente] DROP CONSTRAINT [FK_GrupoClienteCliente];
GO
IF OBJECT_ID(N'[dbo].[FK_ItemCampanha_Campanha]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[ItemCampanha] DROP CONSTRAINT [FK_ItemCampanha_Campanha];
GO
IF OBJECT_ID(N'[dbo].[FK_ItemCampanha_GrupoCliente]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[ItemCampanha] DROP CONSTRAINT [FK_ItemCampanha_GrupoCliente];
GO
IF OBJECT_ID(N'[dbo].[FK_ItemPedido_Produto]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[ItemPedido] DROP CONSTRAINT [FK_ItemPedido_Produto];
GO
IF OBJECT_ID(N'[dbo].[FK_ItensPedido_Pedido]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[ItemPedido] DROP CONSTRAINT [FK_ItensPedido_Pedido];
GO
IF OBJECT_ID(N'[dbo].[FK_Pedidos_Clientes]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Pedido] DROP CONSTRAINT [FK_Pedidos_Clientes];
GO
IF OBJECT_ID(N'[dbo].[FK_Pedidos_Vendedor]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Pedido] DROP CONSTRAINT [FK_Pedidos_Vendedor];
GO
IF OBJECT_ID(N'[dbo].[FK_ProdutoCampanha_ItemCampanha]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[ProdutoCampanha] DROP CONSTRAINT [FK_ProdutoCampanha_ItemCampanha];
GO
IF OBJECT_ID(N'[dbo].[FK_ProdutosCampanha_Campanha]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[ProdutoCampanha] DROP CONSTRAINT [FK_ProdutosCampanha_Campanha];
GO
IF OBJECT_ID(N'[dbo].[FK_RemetenteCampanha]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Campanha] DROP CONSTRAINT [FK_RemetenteCampanha];
GO

-- --------------------------------------------------
-- Dropping existing tables
-- --------------------------------------------------

IF OBJECT_ID(N'[dbo].[Campanha]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Campanha];
GO
IF OBJECT_ID(N'[dbo].[Cidade]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Cidade];
GO
IF OBJECT_ID(N'[dbo].[Cliente]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Cliente];
GO
IF OBJECT_ID(N'[dbo].[Estado]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Estado];
GO
IF OBJECT_ID(N'[dbo].[GrupoCliente]', 'U') IS NOT NULL
    DROP TABLE [dbo].[GrupoCliente];
GO
IF OBJECT_ID(N'[dbo].[ItemCampanha]', 'U') IS NOT NULL
    DROP TABLE [dbo].[ItemCampanha];
GO
IF OBJECT_ID(N'[dbo].[ItemPedido]', 'U') IS NOT NULL
    DROP TABLE [dbo].[ItemPedido];
GO
IF OBJECT_ID(N'[dbo].[Pedido]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Pedido];
GO
IF OBJECT_ID(N'[dbo].[Produto]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Produto];
GO
IF OBJECT_ID(N'[dbo].[ProdutoCampanha]', 'U') IS NOT NULL
    DROP TABLE [dbo].[ProdutoCampanha];
GO
IF OBJECT_ID(N'[dbo].[Remetente]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Remetente];
GO
IF OBJECT_ID(N'[dbo].[Vendedor]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Vendedor];
GO

-- --------------------------------------------------
-- Creating all tables
-- --------------------------------------------------

-- Creating table 'Campanhas'
CREATE TABLE [dbo].[Campanhas] (
    [CampanhaId] int IDENTITY(1,1) NOT NULL,
    [Data] datetime  NULL,
    [RemetenteId] int  NOT NULL
);
GO

-- Creating table 'Cidades'
CREATE TABLE [dbo].[Cidades] (
    [CidadeId] int IDENTITY(1,1) NOT NULL,
    [EstadoId] int  NOT NULL,
    [Nome] varchar(100)  NOT NULL
);
GO

-- Creating table 'Clientes'
CREATE TABLE [dbo].[Clientes] (
    [ClienteId] int IDENTITY(1,1) NOT NULL,
    [Nome] varchar(100)  NOT NULL,
    [Endereco] varchar(100)  NOT NULL,
    [Numero] int  NOT NULL,
    [Cep] varchar(8)  NOT NULL,
    [Telefone] varchar(20)  NOT NULL,
    [Fax] varchar(20)  NULL,
    [Email] varchar(50)  NOT NULL,
    [DataNascimento] datetime  NOT NULL,
    [Sexo] char(1)  NOT NULL,
    [Observacao] varchar(500)  NULL,
    [CidadeId] int  NOT NULL,
    [GrupoClienteId] int  NULL
);
GO

-- Creating table 'Estados'
CREATE TABLE [dbo].[Estados] (
    [EstadoId] int IDENTITY(1,1) NOT NULL,
    [Nome] varchar(50)  NOT NULL,
    [Sigla] varchar(2)  NOT NULL
);
GO

-- Creating table 'GrupoClientes'
CREATE TABLE [dbo].[GrupoClientes] (
    [GrupoClienteId] int IDENTITY(1,1) NOT NULL,
    [Nome] nvarchar(max)  NOT NULL
);
GO

-- Creating table 'ItensCampanha'
CREATE TABLE [dbo].[ItensCampanha] (
    [ItemCampanhaId] int IDENTITY(1,1) NOT NULL,
    [CampanhaId] int  NULL,
    [GrupoClienteId] int  NULL,
    [ProdutoCampanhaId] int  NOT NULL
);
GO

-- Creating table 'ItensPedido'
CREATE TABLE [dbo].[ItensPedido] (
    [ItemPedidoId] int IDENTITY(1,1) NOT NULL,
    [PedidoId] int  NOT NULL,
    [ProdutoId] int  NOT NULL,
    [Qtde] int  NOT NULL,
    [ValorTotal] decimal(15,2)  NOT NULL
);
GO

-- Creating table 'Pedidos'
CREATE TABLE [dbo].[Pedidos] (
    [PedidoId] int IDENTITY(1,1) NOT NULL,
    [ClienteId] int  NOT NULL,
    [VendedorId] int  NOT NULL,
    [Numero] int  NOT NULL,
    [Data] datetime  NOT NULL,
    [Valor] decimal(15,2)  NOT NULL,
    [ValorComissao] decimal(15,2)  NOT NULL,
    [Observacao] varchar(500)  NULL
);
GO

-- Creating table 'Produtos'
CREATE TABLE [dbo].[Produtos] (
    [ProdutoId] int IDENTITY(1,1) NOT NULL,
    [Descricao] varchar(100)  NOT NULL,
    [ValorUnitario] decimal(15,2)  NOT NULL,
    [Qtde] int  NOT NULL
);
GO

-- Creating table 'ProdutoCampanha'
CREATE TABLE [dbo].[ProdutoCampanha] (
    [ProdutoCampanhaId] int IDENTITY(1,1) NOT NULL,
    [ItemCampanhaId] int  NOT NULL,
    [ProdutoId] int  NOT NULL
);
GO

-- Creating table 'Remetentes'
CREATE TABLE [dbo].[Remetentes] (
    [RemetenteId] int IDENTITY(1,1) NOT NULL,
    [Nome] nvarchar(max)  NOT NULL,
    [Email] nvarchar(max)  NOT NULL
);
GO

-- Creating table 'Vendedores'
CREATE TABLE [dbo].[Vendedores] (
    [VendedorId] int IDENTITY(1,1) NOT NULL,
    [Nome] varchar(100)  NOT NULL
);
GO

-- --------------------------------------------------
-- Creating all PRIMARY KEY constraints
-- --------------------------------------------------

-- Creating primary key on [CampanhaId] in table 'Campanhas'
ALTER TABLE [dbo].[Campanhas]
ADD CONSTRAINT [PK_Campanhas]
    PRIMARY KEY CLUSTERED ([CampanhaId] ASC);
GO

-- Creating primary key on [CidadeId] in table 'Cidades'
ALTER TABLE [dbo].[Cidades]
ADD CONSTRAINT [PK_Cidades]
    PRIMARY KEY CLUSTERED ([CidadeId] ASC);
GO

-- Creating primary key on [ClienteId] in table 'Clientes'
ALTER TABLE [dbo].[Clientes]
ADD CONSTRAINT [PK_Clientes]
    PRIMARY KEY CLUSTERED ([ClienteId] ASC);
GO

-- Creating primary key on [EstadoId] in table 'Estados'
ALTER TABLE [dbo].[Estados]
ADD CONSTRAINT [PK_Estados]
    PRIMARY KEY CLUSTERED ([EstadoId] ASC);
GO

-- Creating primary key on [GrupoClienteId] in table 'GrupoClientes'
ALTER TABLE [dbo].[GrupoClientes]
ADD CONSTRAINT [PK_GrupoClientes]
    PRIMARY KEY CLUSTERED ([GrupoClienteId] ASC);
GO

-- Creating primary key on [ItemCampanhaId] in table 'ItensCampanha'
ALTER TABLE [dbo].[ItensCampanha]
ADD CONSTRAINT [PK_ItensCampanha]
    PRIMARY KEY CLUSTERED ([ItemCampanhaId] ASC);
GO

-- Creating primary key on [ItemPedidoId] in table 'ItensPedido'
ALTER TABLE [dbo].[ItensPedido]
ADD CONSTRAINT [PK_ItensPedido]
    PRIMARY KEY CLUSTERED ([ItemPedidoId] ASC);
GO

-- Creating primary key on [PedidoId] in table 'Pedidos'
ALTER TABLE [dbo].[Pedidos]
ADD CONSTRAINT [PK_Pedidos]
    PRIMARY KEY CLUSTERED ([PedidoId] ASC);
GO

-- Creating primary key on [ProdutoId] in table 'Produtos'
ALTER TABLE [dbo].[Produtos]
ADD CONSTRAINT [PK_Produtos]
    PRIMARY KEY CLUSTERED ([ProdutoId] ASC);
GO

-- Creating primary key on [ProdutoCampanhaId] in table 'ProdutoCampanha'
ALTER TABLE [dbo].[ProdutoCampanha]
ADD CONSTRAINT [PK_ProdutoCampanha]
    PRIMARY KEY CLUSTERED ([ProdutoCampanhaId] ASC);
GO

-- Creating primary key on [RemetenteId] in table 'Remetentes'
ALTER TABLE [dbo].[Remetentes]
ADD CONSTRAINT [PK_Remetentes]
    PRIMARY KEY CLUSTERED ([RemetenteId] ASC);
GO

-- Creating primary key on [VendedorId] in table 'Vendedores'
ALTER TABLE [dbo].[Vendedores]
ADD CONSTRAINT [PK_Vendedores]
    PRIMARY KEY CLUSTERED ([VendedorId] ASC);
GO

-- --------------------------------------------------
-- Creating all FOREIGN KEY constraints
-- --------------------------------------------------

-- Creating foreign key on [CampanhaId] in table 'ItensCampanha'
ALTER TABLE [dbo].[ItensCampanha]
ADD CONSTRAINT [FK_ItemCampanha_Campanha]
    FOREIGN KEY ([CampanhaId])
    REFERENCES [dbo].[Campanhas]
        ([CampanhaId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_ItemCampanha_Campanha'
CREATE INDEX [IX_FK_ItemCampanha_Campanha]
ON [dbo].[ItensCampanha]
    ([CampanhaId]);
GO

-- Creating foreign key on [RemetenteId] in table 'Campanhas'
ALTER TABLE [dbo].[Campanhas]
ADD CONSTRAINT [FK_RemetenteCampanha]
    FOREIGN KEY ([RemetenteId])
    REFERENCES [dbo].[Remetentes]
        ([RemetenteId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_RemetenteCampanha'
CREATE INDEX [IX_FK_RemetenteCampanha]
ON [dbo].[Campanhas]
    ([RemetenteId]);
GO

-- Creating foreign key on [EstadoId] in table 'Cidades'
ALTER TABLE [dbo].[Cidades]
ADD CONSTRAINT [FK_Cidades_Estados]
    FOREIGN KEY ([EstadoId])
    REFERENCES [dbo].[Estados]
        ([EstadoId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_Cidades_Estados'
CREATE INDEX [IX_FK_Cidades_Estados]
ON [dbo].[Cidades]
    ([EstadoId]);
GO

-- Creating foreign key on [CidadeId] in table 'Clientes'
ALTER TABLE [dbo].[Clientes]
ADD CONSTRAINT [FK_Clientes_Cidades]
    FOREIGN KEY ([CidadeId])
    REFERENCES [dbo].[Cidades]
        ([CidadeId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_Clientes_Cidades'
CREATE INDEX [IX_FK_Clientes_Cidades]
ON [dbo].[Clientes]
    ([CidadeId]);
GO

-- Creating foreign key on [GrupoClienteId] in table 'Clientes'
ALTER TABLE [dbo].[Clientes]
ADD CONSTRAINT [FK_GrupoClienteCliente]
    FOREIGN KEY ([GrupoClienteId])
    REFERENCES [dbo].[GrupoClientes]
        ([GrupoClienteId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_GrupoClienteCliente'
CREATE INDEX [IX_FK_GrupoClienteCliente]
ON [dbo].[Clientes]
    ([GrupoClienteId]);
GO

-- Creating foreign key on [ClienteId] in table 'Pedidos'
ALTER TABLE [dbo].[Pedidos]
ADD CONSTRAINT [FK_Pedidos_Clientes]
    FOREIGN KEY ([ClienteId])
    REFERENCES [dbo].[Clientes]
        ([ClienteId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_Pedidos_Clientes'
CREATE INDEX [IX_FK_Pedidos_Clientes]
ON [dbo].[Pedidos]
    ([ClienteId]);
GO

-- Creating foreign key on [GrupoClienteId] in table 'ItensCampanha'
ALTER TABLE [dbo].[ItensCampanha]
ADD CONSTRAINT [FK_ItemCampanha_GrupoCliente]
    FOREIGN KEY ([GrupoClienteId])
    REFERENCES [dbo].[GrupoClientes]
        ([GrupoClienteId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_ItemCampanha_GrupoCliente'
CREATE INDEX [IX_FK_ItemCampanha_GrupoCliente]
ON [dbo].[ItensCampanha]
    ([GrupoClienteId]);
GO

-- Creating foreign key on [ItemCampanhaId] in table 'ProdutoCampanha'
ALTER TABLE [dbo].[ProdutoCampanha]
ADD CONSTRAINT [FK_ProdutoCampanha_ItemCampanha]
    FOREIGN KEY ([ItemCampanhaId])
    REFERENCES [dbo].[ItensCampanha]
        ([ItemCampanhaId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_ProdutoCampanha_ItemCampanha'
CREATE INDEX [IX_FK_ProdutoCampanha_ItemCampanha]
ON [dbo].[ProdutoCampanha]
    ([ItemCampanhaId]);
GO

-- Creating foreign key on [ProdutoId] in table 'ItensPedido'
ALTER TABLE [dbo].[ItensPedido]
ADD CONSTRAINT [FK_ItemPedido_Produto]
    FOREIGN KEY ([ProdutoId])
    REFERENCES [dbo].[Produtos]
        ([ProdutoId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_ItemPedido_Produto'
CREATE INDEX [IX_FK_ItemPedido_Produto]
ON [dbo].[ItensPedido]
    ([ProdutoId]);
GO

-- Creating foreign key on [PedidoId] in table 'ItensPedido'
ALTER TABLE [dbo].[ItensPedido]
ADD CONSTRAINT [FK_ItensPedido_Pedido]
    FOREIGN KEY ([PedidoId])
    REFERENCES [dbo].[Pedidos]
        ([PedidoId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_ItensPedido_Pedido'
CREATE INDEX [IX_FK_ItensPedido_Pedido]
ON [dbo].[ItensPedido]
    ([PedidoId]);
GO

-- Creating foreign key on [VendedorId] in table 'Pedidos'
ALTER TABLE [dbo].[Pedidos]
ADD CONSTRAINT [FK_Pedidos_Vendedor]
    FOREIGN KEY ([VendedorId])
    REFERENCES [dbo].[Vendedores]
        ([VendedorId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_Pedidos_Vendedor'
CREATE INDEX [IX_FK_Pedidos_Vendedor]
ON [dbo].[Pedidos]
    ([VendedorId]);
GO

-- Creating foreign key on [ProdutoId] in table 'ProdutoCampanha'
ALTER TABLE [dbo].[ProdutoCampanha]
ADD CONSTRAINT [FK_ProdutosCampanha_Campanha]
    FOREIGN KEY ([ProdutoId])
    REFERENCES [dbo].[Produtos]
        ([ProdutoId])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_ProdutosCampanha_Campanha'
CREATE INDEX [IX_FK_ProdutosCampanha_Campanha]
ON [dbo].[ProdutoCampanha]
    ([ProdutoId]);
GO

-- --------------------------------------------------
-- Script has ended
-- --------------------------------------------------